<?php
/**
 * 员工任岗
 * Created by PhpStorm.
 * User: echa
 * Date: 2018/2/7
 * Time: 11:17
 */
namespace App\Services\Warehouse;
class EmployeePostService extends PublicService{
    public function __construct()
    {
        parent::__construct(Config('k3cloud.EmployeePost'));
    }


    /**
     * 1.formid：业务对象表单Id（必录）
    2.data：Json格式数据（详情参考Json格式数据）（必录）
    2.1.Creator：创建者名字（非必录）
    2.2.NeedUpDateFields：需要保存的字段,格式["fieldkey1","fieldkey2","entitykey1",...]，数组类型(非必录)
    2.3.NeedReturnFields：需要返回的结果字段,格式["fieldkey","entitykey.fieldkey",...]（非必录）
    2.4.IsDeleteEntry：是否删除分录，默认True删除（非必录）
    2.5.SubSystemId：菜单所在子系统Id（非必录）
    2.6.IsVerifyBaseDataField：是否验证所有的基础资料，默认False不验证（非必录）
    2.7.IsEntryBatchFill：是否批量填充分录：默认为Ture（非必录）
    2.8.Model：表单实体数据（必录）

     */
    public function SaveEmployeePost($ArrData){
        if(!is_array($ArrData)){
            return false;
        }
        if(empty($ArrData['FSTAFFID'])){
            $ArrData['FSTAFFID']="0";
        }
        $data=[
            "FSTAFFID"=>$ArrData['FSTAFFID'],
            "FCreateOrgId"=>[
                "FNumber"=>Config('k3cloud.organization')
            ],
            "FNumber"=>$ArrData['FStaffNumber'],
            "FPerson"=>[
                "FNumber"=>"BDRY201801260001"
            ],
            "FStaffNumber"=>$ArrData['FStaffNumber'],
            "FUseOrgId"=>[
                "FNumber"=>Config('k3cloud.organization')
            ],
            "FName"=>"",
            "FDept"=>[
                "FNumber"=>$ArrData['FDeptNumber']
            ],
            "FPosition"=>[
                "FNumber"=>$ArrData['FJobsNumber']
            ],
            "FEmpInfoId"=>[
                "FNumber"=>$ArrData['FStaffNumber']
            ]
        ];
        return $this->save($data);
    }

    /**
     *单据列表查询
     * 1.data：Json格式数据（详情参考Json格式数据）（必录）
    1.1.FormId：业务对象表单Id（必录）
    1.2.FieldKeys：字段keys，字符串类型用逗号分隔，比如"key1,key2..."（必录）
    1.3.FilterString：过滤（非必录）  FNumber=''
    1.4.OrderString：排序字段（非必录）
    1.5.TopRowCount：总行数（非必录）
    1.6.StartRow：开始行（非必录）
    1.7.Limit：最大行数，不能超过2000（非必录）
     */
    public function ExecuteBillQueryEmployeePost($FieldKeys = '', $FilterString = '', $OrderString = '', $TopRowCount = 0, $StartRow = 0, $Limit = 20)
    {
        if (empty($FieldKeys)) {
            $FieldKeys='FNumber,FStaffNumber,FDept.FName,FPosition.FName,FDocumentStatus,FForbidStatus';
        }
        return parent::ExecuteBillQuery($FieldKeys, $FilterString, $OrderString, $TopRowCount, $StartRow, $Limit);
    }

    /**
     * 员工任岗列表
     *
     */
    public function ListEmployeePost($FStaffNumber='',$FPositionNumber=''){
        $FieldKeys='FStaffNumber,FEmpInfoId.FName,FDept.FNumber,FDept.FName,FPosition.FNumber,FPosition.FName,FDocumentStatus,FForbidStatus';
        $FilterString='';
        if(!empty($FStaffNumber) && !empty($FPositionNumber)){
            $FilterString="FStaffNumber='".$FStaffNumber."' and FPosition.FNumber='".$FPositionNumber."'";
        }
        return $this->ExecuteBillQuery($FieldKeys,$FilterString);
    }
}